const MAP = new Map()

/**
 * 用于缓存frame的map
 * @returns {{delMap: delMap, setMap: setMap, MAP: Map<any, any>, getMap: ((function(*): (any))|*)}}
 */
export const useMultiFrame = () => {

    /**
     * 存入页面
     * @param path 页面路径
     * @param Comp 组件路径
     */
    function setMap(path, Comp) {
        MAP.set(path, Comp)
    }

    /**
     * 获取页面
     * @param path 页面路径, 如果为空返回所有页面
     * @returns {any|[any, any][]}
     */
    function getMap(path = null) {
        if (path) {
            return MAP.get(path)
        }
        return [...MAP.entries()]
    }
    
    function delMap(path) {
        MAP.delete(path)
    }
    
    return {
        setMap,
        getMap,
        delMap,
        MAP
    }
    
}
